﻿/**
 *
 * @file OperPhysicsPropBeam.h
 * @brief  梁物理属性操作器
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-09
 *
 */
#ifndef _OPER_PHYSICS_Beam_H___
#define _OPER_PHYSICS_Beam_H___

#include "OperatorsInterface/OperAbstractPhysics.h"

namespace ModelOper
{
    /**
     * @brief 梁物理属性操作器
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-09
     */
    class OperPhysicsPropBeam : public EventOper::OperAbstractPhysics
    {
    public:
        /**
         * @brief Construct a new Oper Physics Property Beam object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        explicit OperPhysicsPropBeam() = default;
        /**
         * @brief Destroy the Oper Physics Property Beam object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        virtual ~OperPhysicsPropBeam() = default;
        /**
         * @brief 执行UI操作
         * @return true
         * @return false
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-06
         */
        bool execGUI() override;
        /**
         * @brief 执行业务操作
         * @return true
         * @return false
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-06
         */
        bool execProfession() override;

        /**
         * @brief 创建物理属性
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void createPhysicsProp() override;
        /**
         * @brief 复制物理属性
         * @param[i]  propID          物理属性id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void duplicatePhysicsProp(const int propID) override;
        /**
        * @brief 编辑物理属性
        * @param[i]  propID          物理属性id
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        virtual void editPhysicsProp(const int propID) override;
        /**
         * @brief 删除物理属性
         * @param[i]  propID          物理属性id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void removePhysicsProp(const int propID) override;
        /**
        * @brief 批量设置物理属性
        * @param[i]  name           属性名
        * @param[i]  text           当前值
        * @param[i]  attrIndex      属性索引
        * @param[i]  propID         物理属性id
        * @author LiBaojun (libaojunqd@foxmail.com)
        * @date 2024-12-05
        */
        virtual void setAttribute(const QString &name, const QString& text, const int attrIndex, const QList<int> & propID) override;

        

    };
    //注册对象
    Register2FITKOperatorRepo(OperPhysicsPropBeam, OperPhysicsPropBeam);
    Register2FITKOperatorRepo(actionBeams, OperPhysicsPropBeam);

}

#endif